/*
 * 文件名：SHException.java
 * 版权：Copyright by www.wootide.com
 * 描述：
 * 修改人：qianfm
 * 修改时间：Sep 11, 2012
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */
package com.wootide.cms.common.manager;

/**
 * 系统异常类
 * @author qianfm
 * @version Sep 11, 2012
 * @see SHException
 * @since
 */

public class SHException extends Exception
{
    /**
     * <code>serialVersionUID</code> 的注释
     */
    private static final long serialVersionUID = -1100993677853763782L;
    
    /**
     * 错误信息.
     */
    private ErrorMessage errorMessage;
    
    /**
     * 
     * 构造函数.
     *
     * @param msg {@link String} 错误信息字符串
     */
    public SHException(String msg)
    {
        super(msg);
    }
    
    /**
     * 
     * 构造函数.
     *
     * @param msg {@link String} 错误信息字符串
     * @param cause {@link Throwable} 异常原因
     */
    public SHException(String msg, Throwable cause)
    {
        super(msg, cause);
    }
    
    /**
     * 
     * 构造函数.
     *
     * @param errorMessage {@link ErrorMessage} 错误信息
     */
    public SHException(ErrorMessage errorMessage)
    {
        super(errorMessage.getMessage());
        this.errorMessage = errorMessage;
    }
    
    /**
     * 
     * 构造函数.
     *
     * @param errorMessage {@link ErrorMessage} 错误信息
     * @param cause {@link Throwable} 异常原因
     */
    public SHException(ErrorMessage errorMessage, Throwable cause)
    {
        super(errorMessage.getMessage(), cause);
        this.errorMessage = errorMessage;
    }
    
    /**
     * 获得errorMessage.
     * 
     * @return errorMessage
     */
    public ErrorMessage getErrorMessage()
    {
        return this.errorMessage;
    }
    
    /**
     * 设置errorMessage.
     * 
     * @param errorMessage 要设置的 errorMessage
     */
    public void setErrorMessage(ErrorMessage errorMessage)
    {
        this.errorMessage = errorMessage;
    }
}
